// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.google.zxing.maxicode.decoder; import com.google.zxing.common.DecoderResult; import java.text.DecimalFormat; import java.text.NumberFormat; final class b { private static final char a = 65520; private static final char b = 65521; private static final char c = 65522; private static final char d = 65523; private static final char e = 65524; private static final char f = 65525; private static final char g = 65526; private static final char h = 65527; private static final char i = 65528; private static final char j = 65529; private static final char k = 65530; private static final char l = 65531; private static final char m = 65532; private static final char n = 28; private static final char o = 29; private static final char p = 30; private static final NumberFormat q = new DecimalFormat("000000000"); private static final NumberFormat r = new DecimalFormat("000"); private static final String s[] = { "\nABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFA\034\035\036\uFFFB \uFFFC\"#$%&'()*+,-./0123456789:\uFFF1\uFFF2\uFFF3\uFFF4\uFFF8", "`abcdefghijklmnopqrstuvwxyz\uFFFA\034\035\036\uFFFB{\uFFFC}~\177;<=>?[\\]^_ ,./:@!|\uFFFC\uFFF5\uFFF6\uFFFC\uFFF0\uFFF2\uFFF3\uFFF4\uFFF7", "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\uFFFA\034\035\036\333\334\335\336\337\252\254\261\262\263\265\271\272\274\275\276\200\201\202\203\204\205\206\207\210\211\uFFF7 \uFFF9\uFFF3\uFFF4\uFFF8", "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\uFFFA\034\035\036\uFFFB\373\374\375\376\377\241\250\253\257\260\264\267\270\273\277\212\213\214\215\216\217\220\221\222\223\224\uFFF7 \uFFF2\uFFF9\uFFF4\uFFF8", "\000\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\uFFFA\uFFFC\uFFFC\033\uFFFB\034\035\036\037\237\240\242\243\244\245\246\247\251\255\256\266\225\226\227\230\231\232\233\234\235\236\uFFF7 \uFFF2\uFFF3\uFFF9\uFFF8", "\000\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !\"#$%&'()*+,-./0123456789:;<=>?" }; private b() { } private static int a(int i1, byte abyte0[]) { int j1 = 1; int k1 = i1 - 1; if ((abyte0[k1 / 6] & j1 << 5 - k1 % 6) == 0) { j1 = 0; } return j1; } private static int a(byte abyte0[]) { return a(abyte0, new byte[] { 53, 54, 43, 44, 45, 46, 47, 48, 37, 38 }); } private static int a(byte abyte0[], byte abyte1[]) { int i1 = 0; int j1 = 0; for (; i1 < abyte1.length; i1++) { j1 += a(abyte1[i1], abyte0) << -1 + (abyte1.length - i1); } return j1; } static DecoderResult a(byte abyte0[], int i1) { StringBuilder stringbuilder = new StringBuilder(144); i1; JVM INSTR tableswitch 2 5: default 44 // 2 62 // 3 62 // 4 257 // 5 272; goto _L1 _L2 _L2 _L3 _L4 _L1: return new DecoderResult(abyte0, stringbuilder.toString(), null, String.valueOf(i1)); _L2: String s1; String s2; String s3; if (i1 == 2) { int j1 = d(abyte0); s1 = (new DecimalFormat("0000000000".substring(0, c(abyte0)))).format(j1); } else { s1 = e(abyte0); } s2 = r.format(a(abyte0)); s3 = r.format(b(abyte0)); stringbuilder.append(a(abyte0, 10, 84)); if (stringbuilder.toString().startsWith("[)>\03601\035")) { stringbuilder.insert(9, (new StringBuilder()).append(s1).append('\035').append(s2).append('\035').append(s3).append('\035').toString()); } else { stringbuilder.insert(0, (new StringBuilder()).append(s1).append('\035').append(s2).append('\035').append(s3).append('\035').toString()); } continue; /* Loop/switch isn't completed */ _L3: stringbuilder.append(a(abyte0, 1, 93)); continue; /* Loop/switch isn't completed */ _L4: stringbuilder.append(a(abyte0, 1, 77)); if (true) goto _L1; else goto _L5 _L5: } private static String a(byte abyte0[], int i1, int j1) { StringBuilder stringbuilder; int k1; int l1; int i2; int j2; stringbuilder = new StringBuilder(); k1 = i1; l1 = 0; i2 = 0; j2 = -1; _L10: char c1; if (k1 >= i1 + j1) { break MISSING_BLOCK_LABEL_383; } c1 = s[i2].charAt(abyte0[k1]); c1; JVM INSTR tableswitch 65520 65531: default 108 // 65520 193 // 65521 193 // 65522 193 // 65523 193 // 65524 193 // 65525 222 // 65526 239 // 65527 167 // 65528 180 // 65529 365 // 65530 108 // 65531 256; goto _L1 _L2 _L2 _L2 _L2 _L2 _L3 _L4 _L5 _L6 _L7 _L1 _L8 _L7: break MISSING_BLOCK_LABEL_365; _L5: break; /* Loop/switch isn't completed */ _L1: int l2; int i3; stringbuilder.append(c1); int i7 = k1; i3 = i2; l2 = i7; _L11: int j3 = j2 - 1; if (j2 == 0) { i3 = l1; } int k3 = l2 + 1; j2 = j3; int l3 = i3; k1 = k3; i2 = l3; if (true) goto _L10; else goto _L9 _L9: l2 = k1; j2 = -1; i3 = 0; goto _L11 _L6: l2 = k1; j2 = -1; i3 = 1; goto _L11 _L2: int k6 = c1 - 65520; j2 = 1; int l6 = i2; l2 = k1; i3 = k6; l1 = l6; goto _L11 _L3: j2 = 2; l1 = i2; l2 = k1; i3 = 0; goto _L11 _L4: j2 = 3; l1 = i2; l2 = k1; i3 = 0; goto _L11 _L8: int i4 = k1 + 1; int j4 = abyte0[i4] << 24; int k4 = i4 + 1; int l4 = j4 + (abyte0[k4] << 18); int i5 = k4 + 1; int j5 = l4 + (abyte0[i5] << 12); int k5 = i5 + 1; int l5 = j5 + (abyte0[k5] << 6); int i6 = k5 + 1; int j6 = l5 + abyte0[i6]; stringbuilder.append(q.format(j6)); i3 = i2; l2 = i6; goto _L11 j2 = -1; int k2 = i2; l2 = k1; i3 = k2; goto _L11 for (; stringbuilder.length() > 0 && stringbuilder.charAt(-1 + stringbuilder.length()) == '\uFFFC'; stringbuilder.setLength(-1 + stringbuilder.length())) { } return stringbuilder.toString(); } private static int b(byte abyte0[]) { return a(abyte0, new byte[] { 55, 56, 57, 58, 59, 60, 49, 50, 51, 52 }); } private static int c(byte abyte0[]) { return a(abyte0, new byte[] { 39, 40, 41, 42, 31, 32 }); } private static int d(byte abyte0[]) { return a(abyte0, new byte[] { 33, 34, 35, 36, 25, 26, 27, 28, 29, 30, 19, 20, 21, 22, 23, 24, 13, 14, 15, 16, 17, 18, 7, 8, 9, 10, 11, 12, 1, 2 }); } private static String e(byte abyte0[]) { char ac[] = new char[6]; ac[0] = s[0].charAt(a(abyte0, new byte[] { 39, 40, 41, 42, 31, 32 })); ac[1] = s[0].charAt(a(abyte0, new byte[] { 33, 34, 35, 36, 25, 26 })); ac[2] = s[0].charAt(a(abyte0, new byte[] { 27, 28, 29, 30, 19, 20 })); ac[3] = s[0].charAt(a(abyte0, new byte[] { 21, 22, 23, 24, 13, 14 })); ac[4] = s[0].charAt(a(abyte0, new byte[] { 15, 16, 17, 18, 7, 8 })); ac[5] = s[0].charAt(a(abyte0, new byte[] { 9, 10, 11, 12, 1, 2 })); return String.valueOf(ac); } }